package Day18.ReverseStream;

/**
 * @version 1.0
 * @BelongsProject:IntelliJ IDEA
 * @BelongsPackage:Day18.ReverseStream
 * @Author:hyhWTX
 * @ClassName:Demo04Test
 * @CreateTime:2022年-09月-25日 21:08
 * @Description: TODO (一句话描述以下该类的功能)
 */

import java.io.*;

/**
 *练习:转换文件编码
 * 将GBK将码的文本文件，转换为UTF-8编码的文本文件。
 * 分析：
 *  1.创建InputStreamReader对象.,构造方法中传逢字节输入流和指定的编码表名称GBK.
 *  2.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的绢码表名称UTF-8
 *  3.使用InputStreamReader对家中的万法read读取文件
 *  4.使用OutputStreamWriter对象中的方法write,把读取的数据写入到文件中
 *  5.释放资源
 */

public class Demo04Test {
    public static void main(String[] args) throws IOException {
        //1.创建InputStreamReader对象.,构造方法中传逢字节输入流和指定的编码表名称GBK.
        InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\java黑马\\src\\Day18\\ReverseStream\\我是GBK格式的文件.txt"), "gbk");
        //2.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的绢码表名称UTF-8
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("D:\\java黑马\\src\\Day18\\ReverseStream\\我是utf-8格式的文件.txt"), "UTF-8");
        int len = 0;
        //3.使用InputStreamReader对家中的万法read读取文件
        while ((len=isr.read())!=-1){
            // 4.使用OutputStreamWriter对象中的方法write,把读取的数据写入到文件中
            osw.write(len);
        }
        //5.释放资源
        osw.close();
    }
}
